pcb linux circuit embedded pcb assembly electronics hardware design microcontroller pcb layout development manufacturing contract manufacturing embedded systems software